import numpy as np

A = np.arange(3, 15)
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])

print(A[3])  # 6

# 从3到14，按照3行4列排列
B = np.arange(3, 15).reshape((3, 4))
"""
array([[ 3,  4,  5,  6]
       [ 7,  8,  9, 10]
       [11, 12, 13, 14]])
"""

print(B[2])
# [11 12 13 14]

print(B[1][1])  # 8

print(B[1, 1])  # 8

# 这一表示形式即针对第二行中第2到第4列元素进行切片输出（不包含第4列）。
print(B[1, 1:3])  # [8 9]

# 此时我们适当的利用for函数进行打印：按行打印
for row in B:
    print(row)
print("*************")

# 按列打印
for column in B.T:
    print(column)

# flatten是一个展开性质的函数，
# 将多维的矩阵进行展开成1行的数列。而flat是一个迭代器，
# 本身是一个object属性。
C = np.arange(3, 15).reshape((3, 4))

print(C.flatten())
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])

for item in C.flat:
    print(item)
